FAQ
승인반출시스템(AMS) 관련 FAQ 입니다.
1. 시스템
로그파일 용량이 커서 확인이 어렵습니다.
Q | 로그파일 용량이 커서 확인이 어렵습니다. |
---|---|
A | Tomcat에서는 로그 파일을 지속 축적하기때문에 별도 설정을 통해 분할하여 저장이 가능합니다. 이미 통합되어 저장된 로그의 경우 아래 절차로 분할 하여 확인 가능 합니다. |
- 로그를 바탕화면에 테스트폴더를 생성하여 복사 합니다.
- 테스트폴더를 오픈하여 탐색기 경로 라인에 powershell을 입력 합니다.
- 아래 명령어를 powershell에 입력합니다. [구문 설명]
$i=0; Get-Content 원본파일명 -ReadCount 분할 라인 수 | %{ $i++; $_ | Out-File 분할파일명-$i.log; Write-Host $i }
[사용 예시]약 10MB 내로 분할
$i=0; Get-Content Large_logs.txt -ReadCount 1000000 | %{ $i++; $_ | Out-File output-$i.log; Write-Host $i }
AMS 인사연동 구동 로그 확인 방법
Q | AMS 인사연동이 되었는지 확인하고 싶습니다. |
---|---|
A | 1. |
2. UI/UX
결재 신청 버튼을 클릭하면 에러 메시지가 발생됩니다.
Q | 결재 신청 버튼을 클릭하면 에러 메시지가 발생됩니다. |
---|---|
A1 | 특정인에게서만 발생되는 경우 해당 사용자의 정보가 정상적이 않은 상태 입니다. > 정상적이지 않은 상태란 : 사용자의 그룹정보에 그룹의 패스를 찾을 수 없는 경우 > 확인 방법 : TFTDB(또는 AMSDB)에서 Group_Info테이블에 사용자가 소속된 Group의 정보를 조회 Group_Path필드의 값이 NULL또는 잘못된 값이 있는지 확인 > 조치 방법 : 아래의 각 DBMS종류에 따라 프로시저를 등록하여 사용 |
- MARIADB
- MSSQL
MARIADB의 경우 프로시져로 등록하여 사용필요, 1회성으로 사용하는 방법을 찾으면 업데이트 예정
DELIMITER //
CREATE DEFINER=`drmadmin`@`%` PROCEDURE `SP_UPDATE_GroupPath`()
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
|
|
|
| DECLARE v_RET INT;
| DECLARE v_INDEX INT;
| DECLARE v_PARENTGROUP_ID varchar(20);
| DECLARE UPDATE_COUNT NVARCHAR(2);
|
|
| SET v_RET = 0, v_INDEX = 0;
| CREATE TEMPORARY TABLE TEMP_RESULT
| (
| | GROUP_ID | | VARCHAR(20) NOT NULL,
| | GROUP_NAME | VARCHAR(50) NOT NULL,
| | PARENTGROUP_ID VARCHAR(20) NOT NULL,
| | GROUP_PATH | VARCHAR(1024) NOT NULL,
| | LEV | | | | INT | | NOT NULL
| );
| read_loop: LOOP
|
| | IF ( v_INDEX = 0 )
| | THEN
| |
| | INSERT INTO TEMP_RESULT(GROUP_ID, GROUP_NAME, PARENTGROUP_ID, GROUP_PATH, LEV)
| | | SELECT A.GROUP_ID, A.GROUP_NAME, B.PARENTGROUP_ID, CONCAT(A.GROUP_ID , '^' , A.GROUP_NAME), v_INDEX
| | | FROM GROUP_INFO A, PARENTGROUP_INFO B
| | | WHERE A.GROUP_ID = B.GROUP_ID
| | | | AND A.GROUP_ID = 'SECURITYDOMAIN'
| | | | AND B.NODE_PROPERTY = '1';
| | | |
| | END IF;
| | SET v_INDEX = v_INDEX + 1;
| |
| | INSERT INTO TEMP_RESULT | (GROUP_ID, GROUP_NAME, PARENTGROUP_ID, GROUP_PATH, LEV)
| | (SELECT A.GROUP_ID, A.GROUP_NAME, B.PARENTGROUP_ID, CONCAT(C.GROUP_PATH , '*' , A.GROUP_ID , '^' , A.GROUP_NAME), v_INDEX
| | FROM GROUP_INFO A, PARENTGROUP_INFO B, TEMP_RESULT C
| | WHERE A.GROUP_ID = B.GROUP_ID
| | | AND B.NODE_PROPERTY = '1'
| | | AND B.PARENTGROUP_ID = C.GROUP_ID
| | | AND C.LEV = (v_INDEX - 1)
| | );
| |
| | SET UPDATE_COUNT =(SELECT COUNT(1) FROM GROUP_INFO A, PARENTGROUP_INFO B, TEMP_RESULT C
| | WHERE A.GROUP_ID = B.GROUP_ID
| | | AND B.NODE_PROPERTY = '1'
| | | AND B.PARENTGROUP_ID = C.GROUP_ID
| | | AND C.LEV = (v_INDEX - 1));
| | IF ( UPDATE_COUNT = 0 ) THEN
| | | LEAVE read_loop;
| | END IF;
| |
| END LOOP;
| UPDATE GROUP_INFO A, TEMP_RESULT B
| SET A.GROUP_PATH = B.GROUP_PATH
| WHERE A.GROUP_ID = B.GROUP_ID;
END//
DELIMITER ;
USE TFTDB
GO
DROP TABLE #RESULT
DECLARE @RET INT, @INDEX INT,@PARENTGROUP_ID varchar(20)
SELECT @RET = 0, @INDEX = 0
CREATE TABLE #RESULT
(
| GROUP_ID NVARCHAR(20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
| GROUP_NAME NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
| PARENTGROUP_ID NVARCHAR(20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
| GROUP_PATH NVARCHAR(1024) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
| LEV | | | INT | | NOT NULL,
)
DELETE FROM #RESULT
WHILE @RET = 0
BEGIN
| IF ( @INDEX = 0 )
| BEGIN
| | INSERT INTO #RESULT
| | (GROUP_ID, GROUP_NAME, PARENTGROUP_ID, GROUP_PATH, LEV)
| | (SELECT A.GROUP_ID, A.GROUP_NAME, B.PARENTGROUP_ID, A.GROUP_ID + '^' + A.GROUP_NAME, @INDEX
| | FROM TFTDB..GROUP_INFO A, TFTDB..PARENTGROUP_INFO B
| | WHERE A.GROUP_ID = B.GROUP_ID
| | | AND A.GROUP_ID = 'SECURITYDOMAIN'
| | | AND B.NODE_PROPERTY = '1') | |
| END
| SET @INDEX = @INDEX + 1
|
| INSERT INTO #RESULT
| (GROUP_ID, GROUP_NAME, PARENTGROUP_ID, GROUP_PATH, LEV)
| (SELECT A.GROUP_ID, A.GROUP_NAME, B.PARENTGROUP_ID, C.GROUP_PATH + '*' + A.GROUP_ID + '^' + A.GROUP_NAME, @INDEX
| FROM TFTDB..GROUP_INFO A, TFTDB..PARENTGROUP_INFO B, #RESULT C
| WHERE A.GROUP_ID = B.GROUP_ID
| | AND B.NODE_PROPERTY = '1'
| | AND B.PARENTGROUP_ID = C.GROUP_ID
| | AND C.LEV = (@INDEX - 1)
| )
| IF ( @@ROWCOUNT = 0 ) BREAK
END
UPDATE TFTDB..GROUP_INFO
SET GROUP_PATH = B.GROUP_PATH
FROM TFTDB..GROUP_INFO A, #RESULT B
WHERE A.GROUP_ID = B.GROUP_ID
xlsm확장자가 해제 신청이 불가 합니다.
Q | 승인반출 신청시 특정 확장자는 업로드가 실패 됩니다. |
---|---|
A1 | 승인반출시스템의 해제신청 가능 확장자는 커스텀정책 관리에서 확인이 가능합니다. - 시스템관리자로 로그인 - 커스텀 정책 관리 - ID : AMS_BP_0004를 확인, 변경시 웹페이지를 로그 아웃 후 재 로그인 필요 |
A2 | softcamp.properties에서 암/복호화에 대한 확장자를 별도 지정한 경우 업로드 후 복호화 실패 될 수 있습니다. - /AMS설치경로/data/ams/softcamp/properties파일에서 FileExt의 값이 설정되어있는지 확인 |
특정 계정 로그인 차단
Q | 클라이언트는 로그인하여 사용하지만 해당 계정으로 승인반출시스템에 로그인해서 해제 요청을 하지 않도록 했으면 합니다. |
---|---|
A1 | 승인반출 시스템 관리자 계정으로 로그인 - 사용자 관리 - 차단을 원하는 사용자를 검색 - 사용자 클릭(사용자 정책 설정 팝업) - 접속 차단 을 하면 승인반출시스템만 접속 차단이 가능 합니다. 사용자관리 메뉴가 보이지 않는 경우 커스텀 정책 추가 또는 사용 설정이 필요합니다. |
사용자관리 메뉴 관련 커스텀 정책
Policy_Id | Value_Id | Policy_Name | Policy_Value | Policy_Use | Policy_Info | 쿼리문 |
---|---|---|---|---|---|---|
AMS_CP_0103 | 1 | 사용자 통합 관리 기능 사용 여부 | Y | Y | 사용자 통합 관리 기능 사용 여부 | INSERT INTO CustomPolicy_Info(Policy_Id, Value_Id, Policy_name, Policy_Value, Policy_Use, Policy_Info, Insert_Date, TopGroup_ID) VALUES (N'AMS_CP_0103', 1, N'사용자 통합 관리 기능 사용 여부', N'Y', N'Y', N'사용자 통합 관리 기능 사용 여부', GETDATE(), N'all'); |
AMS_CP_0103 | 2 | 사용자 통합 관리 기능 사용 - 결재자 정책 관리 메뉴 숨김 | Y | Y | 사용자 통합 관리 기능 사용 - 결재자 정책 관리 메뉴 숨김 | INSERT INTO CustomPolicy_Info(Policy_Id, Value_Id, Policy_name, Policy_Value, Policy_Use, Policy_Info, Insert_Date, TopGroup_ID) VALUES (N'AMS_CP_0103', 2, N'사용자 통합 관리 기능 사용 - 결재자 정책 관리 메뉴 숨김', N'Y', N'Y', N'사용자 통합 관리 기능 사용 - 결재자 정책 관리 메뉴 숨김', GETDATE(), N'all'); |
AMS_CP_0103 | 3 | 사용자 통합 관리 기능 사용 - 접속 차단 관리 숨김 | Y | Y | 사용자 통합 관리 기능 사용 - 접속 차단 관리 숨김 | INSERT INTO CustomPolicy_Info(Policy_Id, Value_Id, Policy_name, Policy_Value, Policy_Use, Policy_Info, Insert_Date, TopGroup_ID) VALUES (N'AMS_CP_0103', 3, N'사용자 통합 관리 기능 사용 - 접속 차단 관리 숨김', N'Y', N'Y', N'사용자 통합 관리 기능 사용 - 접속 차단 관리 숨김', GETDATE(), N'all'); |
AMS_CP_0103 | 4 | 사용자 관리자 메뉴 - 부서 차단 링크 미사용 | Y | Y | 사용자 관리자 메뉴의 부서차단 링크 미사용 | INSERT INTO CustomPolicy_Info(Policy_Id, Value_Id, Policy_name, Policy_Value, Policy_Use, Policy_Info, Insert_Date, TopGroup_ID) VALUES (N'AMS_CP_0103', 4, N'사용자 관리자 메뉴 - 부서 차단 링크 미사용', N'Y', N'Y', N'사용자 관리자 메뉴의 부서차단 링크 미사용', GETDATE(), N'all'); |
AMS_CP_0103 | 5 | 사용자 관리자 메뉴 - 직급 기본 결재자 링크 미사용 | Y | Y | 사용자 관리자 메뉴의 직급 기본 결재자 링크 미사용 | INSERT INTO CustomPolicy_Info(Policy_Id, Value_Id, Policy_name, Policy_Value, Policy_Use, Policy_Info, Insert_Date, TopGroup_ID) VALUES (N'AMS_CP_0103', 5, N'사용자 관리자 메뉴 - 직급 기본 결재자 링크 미사용', N'Y', N'Y', N'사용자 관리자 메뉴의 직급 기본 결재자 링크 미사용', GETDATE(), N'all'); |
AMS_CP_0103 | 6 | 사용자 관리자 메뉴 - 사용자 관리 팝업의 퇴직 예정자 버튼 미사용 | Y | Y | 사용자 관리자 메뉴 - 사용자 관리 팝업의 퇴직 예정자 버튼 미사용 | INSERT INTO CustomPolicy_Info(Policy_Id, Value_Id, Policy_name, Policy_Value, Policy_Use, Policy_Info, Insert_Date, TopGroup_ID) VALUES (N'AMS_CP_0103', 6, N'사용자 관리자 메뉴 - 사용자 관리 팝업의 퇴직 예정자 버튼 미사용', N'Y', N'Y', N'사용자 관리자 메뉴 - 사용자 관리 팝업의 퇴직 예정자 버튼 미사용', GETDATE(), N'all'); |
소프트캠프 이미지가 아닌 고객사이미지로 변경하고 싶습 니다.
Q | 좌측 상단의 소프트캠프 로그를 고객사의 CI로 변경하고 싶습니다. |
---|---|
A1 | - 이미지 파일 이름 및 사이즈(픽셀) : logo2.gif (187 X 79) - 패치 경로 : AMS설치 경로/app/Tomcat 9.0/webapps/ROOT/images - 시스템 관리에서 개별이미지 설정 기능 : 사용 으로 설정 |
Q | 메인화면의 이미지를 고객사의 별도 이미지로 변경하고 싶습니다. |
---|---|
A1 | - 이미지 파일 이름 및 사이즈(픽셀) : main-img.png (797 X 310) - 패치 경로 : AMS설치 경로/app/Tomcat 9.0/webapps/ROOT/images - 시스템 관리에서 개별이미지 설정 기능 : 사용 으로 설정 |
Q | 하단의 카피라이트 이미지를 고객사의 별도 이미지로 변경하고 싶습니다. |
---|---|
A1 | - 이미지 파일 이름 및 사이즈(픽셀) : copyright.gif (777 X 60) - 패치 경로 : AMS설치 경로/app/Tomcat 9.0/webapps/ROO/images\ko - 커스텀정책 등록 및 사용 |
하단의 카피라이트 이미지 변경
ID | NO | 정책 이름 | 정책값 | 사용여부 |
---|---|---|---|---|
AMS_UP_0003 | 2 | 하단 카피라이트 개별이미지사용 | Y | 사용 |